【小ネタ】OpenSSH クライアントをバージョンアップする方法
アノテーション 構築チームのいたくらです。
Windows のオプション機能でインストールした OpenSSH クライアントをバージョンアップする機会があったので備忘としてまとめました。
環境
- エディション:Windows 11 Pro
- バージョン:22H2
- OS ビルド:22621.2134
OpenSSH クライアントは、設定>アプリ>オプション機能 でインストール済みです。
バージョンアップ前の OpenSSH クライアントのバージョンは以下の通りでした。
PowerShell 7.3.6 PS C:\Users\ユーザ名> ssh -V OpenSSH_for_Windows_8.6p1, LibreSSL 3.4.3
事前確認
そもそもオプション機能でインストールした OpenSSH クライアントがどこに格納されているかを把握していなかったので確認します。
自分の場合は C:\Windows\System32\OpenSSH
に格納されていました。
設定>システム>バージョン情報>システムの詳細設定>環境変数 で環境変数に移動し、
システム環境変数の Path を確認すると、C:\Windows\System32\OpenSSH
が含まれていました。
winget を使用して OpenSSH を検索
winget は Windows 用のパッケージ管理ソフトです。
バージョン管理がしやすくなるのでこちらを利用します。
winget search
で、パッケージを探すことができます。
試しに winget search ssh
で検索しようとしたところ、同意を求められたので「はい」を選択して次に進みます。
PS C:\Users\ユーザ名> winget search ssh 'msstore' ソースでは、使用する前に次の契約を表示する必要があります。 Terms of Transaction: https://aka.ms/microsoft-store-terms-of-transaction ソースが正常に機能するには、現在のマシンの 2 文字の地理的リージョンをバックエンド サービスに送信する必要があります (例: "US")。 すべてのソース契約条件に同意しますか? [Y] はい [N] いいえ: y
同意後、すぐに検索結果が表示されました。
名前 ID バージョン 一致 ソース ---------------------------------------------------------------------------------------------------------------------- Termius - SSH & SFTP client 9NK1GDVPX09V Unknown msstore AbsoluteTelnet SSH Client 9N77H85H11VS Unknown msstore SSH Control 9P6BSH2W7BNZ Unknown msstore SSH Tunnel 9NR7P38PKLT4 Unknown msstore TKey SSH Agent Tillitis.TKeySSHAgent 0.0.6.0 Tag: ssh winget IO Ninja tibbo.ioninja 5.3.2 Tag: ssh winget Termius Termius.Termius 8.0.4 Tag: ssh winget TeamIDE TeamIDE.TeamIDE 2.3.7 Tag: ssh winget SmarTTY Sysprogs.SmarTTY 3.3 Tag: ssh winget Syncplify.me Server! Syncplify.Server 5.1.30 Tag: ssh winget SSHFS-Win SSHFS-Win.SSHFS-Win 3.5.20357 Tag: ssh winget (以下省略)
検索ワード ssh
はヒットしすぎたので、openssh
にして再度検索します。
PS C:\Users\ユーザ名> winget search openssh 名前 ID バージョン ソース ------------------------------------------------------ OpenSSH Beta Microsoft.OpenSSH.Beta 9.2.2.0 winget
目当てのパッケージを確認できました。
winget を使用してアップグレードできるパッケージを確認
オプション機能でインストールした OpenSSH クライアントは winget の管理対象なのか?と気になったので、winget upgrade
でアップグレードできるパッケージを確認します。
PS C:\Users\ユーザ名> winget upgrade 名前 ID バージョン 利用可能 ソース ----------------------------------------------------------------------------------------------------------------------- Git Git.Git 2.41.0 2.41.0.3 winget Zoom Zoom.Zoom 5.15.5.19404 5.15.7.20303 winget Obsidian Obsidian.Obsidian 1.2.7 1.3.7 winget Microsoft Visual C++ 2015-2019 Redistributable (x86) -… Microsoft.VCRedist.2015+.x86 14.23.27820.0 14.38.32919.0 wingetTeams Machine-Wide Installer Microsoft.Teams 1.3.0.21759 1.6.00.20074 winget Cloudflare WARP Cloudflare.Warp 23.3.412.0 23.7.160.0 winget Microsoft Visual C++ 2015-2019 Redistributable (x64) -… Microsoft.VCRedist.2015+.x64 14.23.27820.0 14.38.32919.0 wingetGoogle Chrome Google.Chrome 116.0.5845.96 116.0.5845.97 winget 8 アップグレードを利用できます。
オプション機能でインストールした OpenSSH クライアントは winget の管理対象ではないようです。
ということで、インストールから始めます。
winget を使用してインストール
winget install
で、パッケージをインストールできます。
PS C:\Users\ユーザ名> winget install Microsoft.OpenSSH.Beta 見つかりました OpenSSH Beta [Microsoft.OpenSSH.Beta] バージョン 9.2.2.0 このアプリケーションは所有者からライセンス供与されます。 Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。 ダウンロード中 https://github.com/PowerShell/Win32-OpenSSH/releases/download/v9.2.2.0p1-Beta/OpenSSH-Win64-v9.2.2.0.msi ██████████████████████████████ 5.10 MB / 5.10 MB インストーラーハッシュが正常に検証されました パッケージのインストールを開始しています... インストールが完了しました
インストールできたので、確認を兼ねて winget show
でパッケージ情報を出力します。
PS C:\Users\ユーザ名> winget show Microsoft.OpenSSH.Beta 見つかりました OpenSSH Beta [Microsoft.OpenSSH.Beta] バージョン: 9.2.2.0 公開元: Microsoft Corporation 発行元 URL: https://github.com/PowerShell/Win32-OpenSSH 発行元のサポート URL: https://github.com/PowerShell/Win32-OpenSSH/issues 作成者: Microsoft Corporation モニカー: openssh-beta 説明: OpenSSH is a complete implementation of the SSH protocol (version 2) for secure remote login, command execution and file transfer (以下省略)
インストールできていそうです。
環境変数を追加
winget でインストールした OpenSSH は、C:\Program Files\OpenSSH
に格納されていました。
そのため、システム環境変数の Path に、C:\Program Files\OpenSSH
を追加します。
アップグレード後のバージョンを確認
バージョンアップ後の OpenSSH クライアントのバージョンは以下の通りでした。
PowerShell 7.3.6 PS C:\Users\ユーザ名> ssh -V OpenSSH_for_Windows_9.2p1, LibreSSL 3.7.2
補足
今回インストールしたパッケージを利用するように変更したので、元々使用していた OpenSSH クライアントは消していいのでは?と思いアンインストールしてみました。
自分の環境は WSL2 上で 1Password を使用して GitHub に SSH 接続するという設定をしているので、git pull
が問題なく実行できるかを確認します。
WSL2 で実行している VSCode のターミナルで、git pull
を実行します。
実行後、1Password のポップアップ画面が表示され、無事に pull できました。
ということで、OpenSSH クライアントをアンインストールしても問題なさそうでした。
(併せて、システム環境変数の Path に登録されていた C:\Windows\System32\OpenSSH
は削除しました)
あとがき
「Windows のオプション機能でインストールした OpenSSH クライアントをバージョンアップする」と言いつつ、実際は最新バージョンをインストールすることになりましたが、結果としてバージョンが管理しやすくなったので良かったです。
アノテーション株式会社について
アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。
「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。
現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社WEBサイトをご覧ください。